/**
 * 
 */
package org.gigi.security.repository;

import java.util.List;

import org.gigi.security.domain.Menu;

/**
 * 菜单持久层接口。
 *
 * @author Eugene Wang 2011-9-13
 * @see
 */
public interface MenuRepository {

	/**
	 * 新增一条菜单记录。
	 * @param menu
	 */
	void create(Menu menu);

	/**
	 * 根据编码返回菜单。
	 * @param code
	 * @return
	 */
	Menu findByCode(String code);

	/**
	 * 删除菜单记录。
	 * @param menu
	 */
	void delete(Menu menu);

	/**
	 * 更新菜单记录。
	 * @param menu
	 */
	void update(Menu menu);

	/**
	 * 获取子菜单项。
	 * @param parentCode
	 * @return
	 */
	List<Menu> findChildren(String parentCode);

	/**
	 * 获取所有菜单
	 * @return
	 */
	List<Menu> findAll();
}
